/**
 * 
 * @param {object} app  koa 实例
 * 
 * 主要区分 本地/测试/生产，通过env环境读取不同文件配置文件。
 * 通过env.config 覆盖 default.config.js 加载到 app.config中
 * 
 * 目录下对应的 config 配置
 * 默认配置 config/config.default.js
 * 本地配置 config/config.local.js
 * 测试配置 config/config.beta.js
 * 生产配置 config/config.prod.js
 * 
 */

const path = require("path")
const { sep } = path

module.exports = (app) => {
    // 获取目录
    const configPath = path.resolve(app.baseDir, `.${sep}config`);
    
    // 获取默认配置
    let defaultConfig = {}
    try {
        defaultConfig = require(path.resolve(configPath, `.${sep}config.default.js`));
    } catch (error) {
        console.log(`[exception] there is no default.config file`);
    }

    let envConfig = {}
    

    try {
        //  获取env.config
        if (app.env.isLocal()) {
            envConfig = require(path.resolve(configPath, `.${sep}config.local.js`));
        } else if (app.env.isBeta()) {
            envConfig = require(path.resolve(configPath, `.${sep}config.beta.js`));
        } else if (app.env.isProd()) {
            envConfig = require(path.resolve(configPath, `.${sep}config.prod.js`));
        }

    } catch (error) {
        console.log(`[exception] there is no env.config file`);
    }

    // 覆盖config配置

    app.config = Object.assign(defaultConfig, envConfig);






}